<?php
/**
 * Description of
 *
 * @author Marco Mounzer
 * @email m.mounzer@gmail.com
 * @copyright 2013
 */
require_once '../lib/begin.php';

if (!isset($_SESSION['user']) || get_class($_SESSION['user']) != 'WebUser')
    header('location: /');

$types = array(
    1 => 'GIF',
    2 => 'JPG',
    3 => 'PNG',
    4 => 'SWF',
    5 => 'PSD',
    6 => 'BMP',
    7 => 'TIFF(intel byte order)',
    8 => 'TIFF(motorola byte order)',
    9 => 'JPC',
    10 => 'JP2',
    11 => 'JPX',
    12 => 'JB2',
    13 => 'SWC', //=="SWF"
    14 => 'IFF',
    15 => 'WBMP',
    16 => 'XBM'
);
$allow_ext = Array(1, 2, 3);


//percorso base della cartella dove mettere i file caricati
//$uploaddir = $_SERVER["DOCUMENT_ROOT"] . "/images/cars/";
//Recupero il percorso temporaneo del file

if (!isset($_FILES['file']) || count($_FILES['file']) == 0) {
    header('location: ' . $_SERVER['HTTP_REFERER']);
    die;
}

require_once '_header.php';
require_once 'WebPhoto.php';
require_once 'SimpleImage.php';

echo "<br /><br /><br />";
$back = "<a href='" . $_SERVER['HTTP_REFERER'] . "'>Torna indietro</a>";

//echo "<pre>" . print_r($_FILES['file'], 1), "</pre>";

function reArrayFiles($file_post) {

    $file_ary = array();
    $file_count = count($file_post['name']);
    $file_keys = array_keys($file_post);

    for ($i = 0; $i < $file_count; $i++) {
        foreach ($file_keys as $key) {
            $file_ary[$i][$key] = $file_post[$key][$i];
        }
    }

    return $file_ary;
}

$files = reArrayFiles($_FILES['file']);
//echo "<pre>" . print_r($files, 1), "</pre>";

foreach ($files as $file) {
    if (intval($file['error']) !== 0)
        continue;;

    $userfile_tmp = $file['tmp_name'];
    $info = getimagesize($userfile_tmp);



    /* echo "<pre>";
      print_r($info);
      print_r($_FILES);
      print_r(pathinfo($_FILES['file']['name']));
      echo "</pre>"; */


//gestione risultato upload sul server
    switch ($file['error']) {
        case 0:
            //controllo estenzione
            if (!in_array($info[2], $allow_ext))
                die("<center><b>Estenzione file non valida.</b><br>$back</center>");

            /* if ($info[0] > 150) { //
              die("<center><b>Dimensione massima 150px.<br />Ulpoad non effettuato.</b><br>$back</center>");
              } */

            break;
        case 1:
            die("<center><b>Il file inviato eccede di dimensioni</b><br>$back</center>");
        case 2:
            die("<center><b>Il file inviato eccede di dimensioni</b><br>$back</center>");
        case 3:
            die("<center><b>ERRORE, Upload eseguito parzialmente</b><br>$back</center>");
        case 4:
            die("<center><b>ERRORE, nessun file è stato inviato</b><br>$back</center>");
    }

    $tmp_file = pathinfo($file['name']);
    $_POST['preview'] = 0;
    $_POST['name'] = strtolower($tmp_file['filename']);
    $_POST['extension'] = strtolower($tmp_file['extension']);

    //effettuare insert in db
    $obj = new WebPhoto();
    $obj->setObjectFromFormSubmit($_POST);
    $obj = Database::SaveOrUpdateObject($obj);

    $userfile_name = strtolower($obj->Id . '.' . $types[$info[2]]);

//copio il file dalla locazione temporanea alla mia cartella upload
    if (move_uploaded_file($userfile_tmp, $uploaddir . 'tmp_' . $userfile_name)) {


        $image = new SimpleImage();
        $image->load($uploaddir . 'tmp_' . $userfile_name);

        if ($info[0] < $info[1])
            $image->resizeToWidth(800);
        else
            $image->resizeToHeight(800);


        $image->save($uploaddir . $userfile_name);
        unlink($uploaddir . 'tmp_' . $userfile_name);
        ?>

        <img src="/images/cars/<?php echo $userfile_name; ?>" />
        <br />

        <?php
    } else {
        echo "<center><b>Upload fallito, non è stato possibile copiare il file nella directory.</b><br /><a href='javascript:history.back()'>Torna indietro</a></center>";
    }
}
?>
<br />
<b>Upload effettuato correttamente</b><br />
<?php echo $back; ?>
<script language="JavaScript" type="text/javascript" >
    setTimeout("window.location.href = '<?php echo $_SERVER['HTTP_REFERER']; ?>'", 1000);
</script>

<?php
require_once '_footer.php';

/*UPLOAD_ERR_OK
  Valore: 0; Non vi sono errori, l'upload è stato eseguito con successo.

  UPLOAD_ERR_INI_SIZE
  Valore: 1; Il file inviato eccede le dimensioni specificate nel parametro upload_max_filesize di php.ini.

  UPLOAD_ERR_FORM_SIZE
  Valore: 2; Il file inviato eccede le dimensioni specificate nel parametro MAX_FILE_SIZE del form.

  UPLOAD_ERR_PARTIAL
  Valore: 3; Upload eseguito parzialmente.

  UPLOAD_ERR_NO_FILE
  Valore: 4; Nessun file è stato inviato.
 */